package com.hanserwei.han_picture.domain.request.picture;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 图片批量上传请求
 * 
 * @author hanserwei
 */
@Data
public class PictureBatchUploadRequest implements Serializable {

    @Serial
    private static final long serialVersionUID = -123456789L;

    /**
     * 图片命名策略
     */
    @Schema(description = "图片命名策略：auto-自动命名, custom-自定义命名, filename-使用文件名")
    private String nameStrategy = "auto";

    /**
     * 自定义名称前缀（当nameStrategy为custom时使用）
     */
    @Schema(description = "自定义名称前缀")
    private String namePrefix;

    /**
     * 标签策略
     */
    @Schema(description = "标签策略：ai-AI生成, custom-自定义标签, none-不设置标签")
    private String tagStrategy = "ai";

    /**
     * 自定义标签列表（当tagStrategy为custom时使用）
     */
    @Schema(description = "自定义标签列表")
    private List<String> customTags;

    /**
     * 分类策略
     */
    @Schema(description = "分类策略：ai-AI生成, custom-自定义分类, none-不设置分类")
    private String categoryStrategy = "ai";

    /**
     * 自定义分类（当categoryStrategy为custom时使用）
     */
    @Schema(description = "自定义分类")
    private String customCategory;

    /**
     * 空间ID
     */
    @Schema(description = "空间ID")
    private Long spaceId;

    /**
     * 是否异步处理AI标签生成
     */
    @Schema(description = "是否异步处理AI标签生成，默认true")
    private Boolean asyncAiProcess = true;
}
